import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
// import app from './modules/app'
// import settings from './modules/settings'
// import user from './modules/user'

Vue.use(Vuex)

// require.context('指定需要导入文件的路径', '是否递归获取', '正则匹配需要加载的文件类型')
// 获取文件路径
const req = require.context('./modules', false, /\.js$/)
// 去掉文件前后不需要的，获取文件的文件名
const mName = req.keys().map(item => item.split('./')[1]).map(item => item.split('.js')[0])

// 获取每个子模块的对象
const mModule = req.keys().map(req)

// 声明一个空对象
const obj = {}
// 遍历每个文件，把每个模块对象赋值给声明的空对象
mName.forEach((item, index) => {
  obj[item] = mModule[index].default
})
// console.log(obj, '第四遍的obj')

// 总仓库
// vuex是一个集中的响应式的全局数据共享的仓库
const store = new Vuex.Store({
  modules: obj,
  getters
})

export default store
